package store;

import java.util.List;
import org.jdom.Element;
import dataview.ValutazioneRicetta;

public class ValutazioniMenuAttive {
private boolean vegetariana, vegana, calorie;
	
	public ValutazioniMenuAttive() {
		vegana = false;
		vegetariana = false;
		calorie = false;
	}
	
	public ValutazioniMenuAttive(boolean vegana, boolean vegetariana, boolean calorie) {
		this.vegana = vegana;
		this.vegetariana = vegetariana;
		this.calorie = calorie;
	}
	
	public boolean eAttiva(ValutazioneRicetta val) {
		switch (val) {
			case vegana:
				return vegana;
			case vegetariana:
				return vegetariana;
			case calorie:
				return calorie;
		}
		return false;
	}
	
	public void attiva(ValutazioneRicetta val, boolean b) {
		switch (val) {
			case vegana:
				vegana = b;
				break;
			case vegetariana:
				vegetariana = b;
				break;
			case calorie:
				calorie = b;
				break;
		}
	}
	
	public static ValutazioniMenuAttive fromXml(Element e) {
		boolean vegana = false, vegetariana = false, calorie = false;
		if (e.getName() != "valutazione_menu") throw new IllegalArgumentException("L'elemento passato non rappresenta le valutazioni menu attive");
		for (Element attiva : (List<Element>)e.getChildren("attive")) {
			if (ValutazioneRicetta.vegana.toString().equals(attiva.getText())) vegana = true;
			if (ValutazioneRicetta.vegetariana.toString().equals(attiva.getText())) vegetariana = true;
			if (ValutazioneRicetta.calorie.toString().equals(attiva.getText())) calorie = true;
		}
		return new ValutazioniMenuAttive(vegana, vegetariana, calorie);
	}
	
	public Element toXml() {
		Element e = new Element("valutazione_menu");
		if (vegana) e.addContent(new Element("attive").setText(ValutazioneRicetta.vegana.toString()));
		if (vegetariana) e.addContent(new Element("attive").setText(ValutazioneRicetta.vegetariana.toString()));
		if (calorie) e.addContent(new Element("attive").setText(ValutazioneRicetta.calorie.toString()));
		return e;
	}
}
